Så jeg har noen problemer med å finne ut av riktig bruk av list :: sort () med hensyn til en liste over strukturer. Her er den relevante koden: struct student { røye firstnm [20], lastnm [20]; int id, karakter; }; listesListe; // Irrelevant kode ... cout << "Vennligst skriv inn ditt eget navn, id og karakter. (Eks: min første mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grad; sList.push_back (data); sList.sort (); Problemet jeg prøver å løse er å bruke sList.sort () til å sortere etter id. Jeg aner imidlertid ikke hvordan jeg skal overføre det til listen :: sort (). Takk på forhånd for hjelp / tid! EDIT: Løsningen var ganske enkelt å legge dette til min struktur bool operator <(const student & cmp) const { retur id
2021-01-22 08:21:53
Du bør se på std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Det er flere definisjoner av den funksjonen, og en der du kan spesifisere hva du vil sortere. Ta også en titt på det innlegget, jeg tror det er det du trenger: https://stackoverflow.com/a/21234017/6663947 Redigere : det er et eksempel på komparator: sList.sort ([] (const student & a, const student & b) {return a.idvoid sort (Sammenlign komp.); Forutsatt at du vil sortere studentobjektene i listen din i henhold til nøkkel-ID i stigende rekkefølge. Du kan enten definere operator